<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of cita
 *
 * @author jorge-luis
 */
class cita extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    function grabar($datos) {
        $this->db->insert('cita', $datos);
        return $this->db->insert_id();
    }

    function editar($datos, $id) {
        $this->db->where('cita.id', $id);
        $this->db->update('cita', $datos);
    }

    function eliminar($id) {
        $this->db->where('cita.id', $id);
        $this->db->delete('cita');
    }

    function buscarByMedico($medico_id, $year, $month) {
        $this->db->select('c.fecha,c.estado,p.nombres,p.apellidos,h.hora_inicio,h.hora_fin');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->join('paciente as p', 'c.paciente = p.id');
        $this->db->join('horario h', 'hm.horario_id = h.id');
        $this->db->join('medico as m', 'hm.medico_id = m.id');
        $this->db->like('c.fecha', "$year-$month", 'after');
        $this->db->where('m.id', $medico_id);
        $this->db->order_by('c.fecha', 'desc');
        $lista = $this->db->get();
        $datos_calendario = array();
        $array = array();
        foreach ($lista->result() as $row) {
            $index = ltrim(substr($row->fecha, 8, 2), '0');
            // array_push($array, '<html>Reservado de ' . $row->hora_inicio . " " . $row->hora_fin . '</html></br>');
            //datos calendario contiene la fila del comentario del evento de ese día
           // $datos_calendario[$index] = '<html>Reservado de ' . $row->hora_inicio . " " . $row->hora_fin . '</html></br>';
        }
        //devolvemos los datos y ya podemos pasarle estos datos al método genera_calendario($year, $month)
        return $datos_calendario;
    }

    function buscarByMedicoDisponible($medico_id,$fecha) {
        $this->db->select('c.*');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->join('medico as m', 'hm.medico_id = m.id');
        $this->db->where('m.id', $medico_id);
//        $this->db->where('hm.id', $horario_medico);
        $this->db->where('c.fecha', $fecha);
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }
    function citasByMedico($medico_id,$fecha) {
        $this->db->select('c.*,h.hora_inicio,h.hora_fin');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->join('medico as m', 'hm.medico_id = m.id');
        $this->db->join('horario as h', 'hm.horario_id = h.id');
        $this->db->where('m.id', $medico_id);
//        $this->db->where('hm.id', $horario_medico);
        $this->db->where('c.fecha', $fecha);
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }

    function buscarByPaciente($paciente) {
        $this->db->select('c.*,h.hora_inicio,h.hora_fin,m.nombres,m.apellidos');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->join('medico as m', 'hm.medico_id = m.id');
        $this->db->join('paciente as p', 'c.paciente = p.id');
        $this->db->join('horario as h', 'hm.horario_id = h.id');
        $this->db->where('p.id', $paciente);
        $this->db->order_by('c.fecha', 'desc');
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }

    function buscarByHorarioMedico($id) {
        $this->db->select('c.*');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->where('hm.id', $id);
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }

    function buscarByMedico1($medico, $filtro) {
        $this->db->select('c.*,h.hora_inicio,h.hora_fin,p.nombres,p.apellidos');
        $this->db->from('cita as c');
        $this->db->join('horario_medico as hm', 'c.horario_medico_id = hm.id');
        $this->db->join('medico as m', 'hm.medico_id = m.id');
        $this->db->join('paciente as p', 'c.paciente = p.id');
        $this->db->join('horario as h', 'hm.horario_id = h.id');
        $this->db->like('p.nombres', $filtro);
        $this->db->or_like('p.apellidos', $filtro);
        $this->db->or_like('p.numero_identificacion', $filtro);
        $this->db->where('m.id', $medico);
        $this->db->where_in('estado', array(0, 1));
        $this->db->order_by('c.fecha','desc');
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }

    function buscar($filtro) {
        $this->db->select('c.fecha,c.estado,c.id as cita_id,c.pago,hm.id as hm_id,p.id as paciente_id,m.id as medico_id,h.hora_inicio,h.hora_fin,p.nombres as nombres_paciente,p.apellidos as apellidos_paciente'
                . ', m.nombres as nombres_medico,m.apellidos as apellidos_medico,em.id as especialidad_medico_id');
        $this->db->from('horario as h');
        $this->db->join('horario_medico hm', 'hm.horario_id = h.id');
        $this->db->join('cita c', 'c.horario_medico_id = hm.id');
        $this->db->join('paciente p', 'c.paciente = p.id');
        $this->db->join('medico m', 'hm.medico_id = m.id');
        $this->db->join('especialidad_medico as em', 'em.medico_id = m.id');
        $this->db->like('m.nombres', $filtro);
        $this->db->or_like('m.apellidos', $filtro);
        $this->db->or_like('p.nombres', $filtro);
        $this->db->or_like('p.apellidos', $filtro);
        $this->db->order_by('c.fecha','desc');
        $lista = $this->db->get();
        if ($lista->num_rows() > 0) {
            return $lista->result_array();
        } else {
            return null;
        }
    }

}
